#include "mSlope.h"


mSlope::mSlope(void)
{
	//---*Slope tipo 1 derecha
	puntosY.push_back(std::vector<int>());//---*Insertamos el vector dentro del vector de vectores.
  	puntosY[0].push_back(15);
	puntosY[0].push_back(15);
	puntosY[0].push_back(14);
	puntosY[0].push_back(14);
	puntosY[0].push_back(13);
	puntosY[0].push_back(13);
	puntosY[0].push_back(12);
	puntosY[0].push_back(12);
	puntosY[0].push_back(11);
	puntosY[0].push_back(11);
	puntosY[0].push_back(10);
	puntosY[0].push_back(10);
	puntosY[0].push_back(9);
	puntosY[0].push_back(9);
	puntosY[0].push_back(8);
	puntosY[0].push_back(8);
	
	
	//---*Slope tipo 2 derecha
	puntosY.push_back(std::vector<int>());//---*Insertamos el vector dentro del vector de vectores.
	puntosY[1].push_back(7);
	puntosY[1].push_back(7);
	puntosY[1].push_back(6);
	puntosY[1].push_back(6);
	puntosY[1].push_back(5);
	puntosY[1].push_back(5);
	puntosY[1].push_back(4);
	puntosY[1].push_back(4);
	puntosY[1].push_back(3);
	puntosY[1].push_back(3);
	puntosY[1].push_back(2);
	puntosY[1].push_back(2);
	puntosY[1].push_back(1);
	puntosY[1].push_back(1);
	puntosY[1].push_back(0);
	puntosY[1].push_back(0);

	//---*Slope tipo 3 izquierda (es el 2 al revez)
	puntosY.push_back(std::vector<int>());//---*Insertamos el vector dentro del vector de vectores.
	puntosY[2].push_back(0);
	puntosY[2].push_back(0);
	puntosY[2].push_back(1);
	puntosY[2].push_back(1);
	puntosY[2].push_back(2);
	puntosY[2].push_back(2);
	puntosY[2].push_back(3);
	puntosY[2].push_back(3);
	puntosY[2].push_back(4);
	puntosY[2].push_back(4);
	puntosY[2].push_back(5);
	puntosY[2].push_back(5);
	puntosY[2].push_back(6);
	puntosY[2].push_back(6);
	puntosY[2].push_back(7);
	puntosY[2].push_back(7);

	//---*Slope tipo 4 izquierda (es el 1 al revez)
	puntosY.push_back(std::vector<int>());//---*Insertamos el vector dentro del vector de vectores.
	puntosY[3].push_back(8);
	puntosY[3].push_back(8);
	puntosY[3].push_back(9);
	puntosY[3].push_back(9);
	puntosY[3].push_back(10);
	puntosY[3].push_back(10);
	puntosY[3].push_back(11);
	puntosY[3].push_back(11);
	puntosY[3].push_back(12);
	puntosY[3].push_back(12);
	puntosY[3].push_back(13);
	puntosY[3].push_back(13);
	puntosY[3].push_back(14);
	puntosY[3].push_back(14);
	puntosY[3].push_back(15);
	puntosY[3].push_back(15);

	//---*Slope tipo 5 derecha (45 grados hacia la derecha)
	puntosY.push_back(std::vector<int>());//---*Insertamos el vector dentro del vector de vectores.
	for(int n=15;n>=0;n--)
	puntosY[4].push_back(n);
	//---*Slope tipo 6 izquieda (es el 5 al revez)
	puntosY.push_back(std::vector<int>());//---*Insertamos el vector dentro del vector de vectores.
	for(int n=0;n<=15;n++)
	puntosY[5].push_back(n);


}


mSlope::~mSlope(void)
{
	puntosY.clear();
}

std::vector <int> & mSlope::SoyUnSlope(int IDSlope,sf::FloatRect r,sf::Vector2f &punto_actor,int &direccionSlope)
{
	
	if(IDSlope==1){
	direccionSlope=1;
	punto_actor.x=r.Right - (r.GetWidth()/2.0f);
	//punto_actor.x=r.Right;
	punto_actor.y=r.Bottom;
	return puntosY[0];
	}
	

	if(IDSlope==2 ){	
	direccionSlope=1;
	punto_actor.x=r.Right - (r.GetWidth()/2.0f);
	//punto_actor.x=r.Right;
	punto_actor.y=r.Bottom;
	return puntosY[1];
	}

	if(IDSlope==3 ){	
	direccionSlope=-1;
	punto_actor.x=r.Right - (r.GetWidth()/2.0f);
	//punto_actor.x=r.Left;
	punto_actor.y=r.Bottom;
	return puntosY[2];
	}

	if(IDSlope==4 ){	
	direccionSlope=-1;
	punto_actor.x=r.Right - (r.GetWidth()/2);
	//punto_actor.x=r.Left;
	punto_actor.y=r.Bottom;
	return puntosY[3];
	}

	if(IDSlope==5 ){	
	direccionSlope=1;
	punto_actor.x=r.Right - (r.GetWidth()/2.0f);
	//punto_actor.x=r.Right;
	punto_actor.y=r.Bottom;
	return puntosY[4];
	}

	if(IDSlope==6 ){	
	direccionSlope=-1;
	punto_actor.x=r.Right - (r.GetWidth()/2.0f);
	//punto_actor.x=r.Left;
	punto_actor.y=r.Bottom;
	return puntosY[5];
	}
	
}
